﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using BLL.Validation;

namespace BLL
{
    public class ThoiKhoaBieuManager : IValidator<ThoiKhoaBieu>
    {

        public static ActionResultAsList<ThoiKhoaBieu> GetThoiKhoaBieu()
        {
            var aResult = new ActionResultAsList<ThoiKhoaBieu>();
            try
            {
                aResult.Result = ThoiKhoaBieuProvider.GetThoiKhoaBieu();
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public static ActionResult<bool> XoaThoiKhoaBieu(int maTKB)
        {
            var aResult = new ActionResult<bool>();
            try
            {
                aResult.Result = ThoiKhoaBieuProvider.XoaThoiKhoaBieu(maTKB);
                if (!aResult.Result)
                {
                    aResult.Exceptions.Add(new Exception("Xóa thời khóa biểu không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public static ActionResult<int> ThemThoiKhoaBieu(ThoiKhoaBieu tkb)
        {
            var aResult = new ActionResult<int>();
            try
            {
                aResult.Result = ThoiKhoaBieuProvider.ThemThoiKhoaBieu(tkb);
                if (aResult.Result <= 0)
                {
                    aResult.Exceptions.Add(new Exception("Thêm thời khóa học không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }

        public static ActionResult<bool> CapNhatThoiKhoaBieu(ThoiKhoaBieu tkb)
        {
            var aResult = new ActionResult<bool>();
            try
            {
                aResult.Result = ThoiKhoaBieuProvider.CapNhatThoiKhoaBieu(tkb);
                if (!aResult.Result)
                {
                    aResult.Exceptions.Add(new Exception("Cập nhật thời khóa biểu không thành công thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }


        public ValidationResult Validate(ThoiKhoaBieu obj)
        {
            var vResult = new ValidationResult();

            if (string.IsNullOrEmpty(obj.BuoiHoc.Trim()))
            {
                vResult.Message.Add("Ca học phải khác chuỗi rổng");
            }
            return vResult;
        }

    }
}
